/*
 * @Author: CemCode
 * @Date: 2023-04-23 09:07:25
 * @LastEditTime: 2023-10-07 16:24:03
 * @Description: file content
 */
const joi = require("joi");

exports.list_schema = {
    query:{
        pageNum : joi.number().min(1).max(1000).default(1).error(new Error("pageNum必须为1~1000的数值")),
        pageSize : joi.number().min(1).max(50).default(10).error(new Error("pageSize必须为1~50的数值")),
        label:joi.string().min(0).max(150).error(new Error("标签必须是长度在0~150之间的字符串")),
        type:joi.string().min(1).max(150).error(new Error("类别必须是长度在1~150之间的字符串")),
        articleTitle: joi.string().min(0).max(150).error(new Error("文章标题必须是长度在1~150之间的字符串")),
    }
};

exports.article_schema = {
    query:{ 
        id:joi.string().min(1).max(32).required().error(new Error("ID必须是长度在1~32之间的字符串")),
    }
}

// 访客注册请求规则
exports.register_schema = {
    body:{
        user_name: joi.string().regex(/^[a-zA-Z0-9_]{3,50}$/).required().error(new Error("用户名必须由长度为3~15的字母或数字或下划线组成")),
        user_email:joi.string().email().required().error(new Error("邮箱格式错误")),
        code:joi.string().length(6).error(new Error("验证码错误")),
        pwd:joi.string().regex(/^[a-zA-Z0-9_]{6,32}/).error(new Error("密码必须是长度为6~32的数字字母下划线组成")),
        registration_platform:joi.string().min(1).max(10).required().error(new Error("注册平台异常"))
    }
}

// 发送账号注册验证码
exports.send_code = {
    body:{
        user_email:joi.string().email().required().error(new Error("邮箱格式错误")),
    }
}

// 用户登录规则
exports.login = {
    body:{
        user_name: joi.string().regex(/^[a-zA-Z0-9_]{3,50}$/).required().error(new Error("用户名必须由长度为3~15的字母或数字或下划线组成")),
        user_email:joi.string().email().required().error(new Error("邮箱格式错误")),
        pwd:joi.string().regex(/^[a-zA-Z0-9_]{6,32}/).required().error(new Error("密码必须是长度为6~32的数字字母下划线组成")),
        login_platform:joi.string().min(1).max(10).required().error(new Error("注册平台异常"))
    }
}

// 新增文章评论
exports.send_comment = {
    body:{
        article_id: joi.string().min(1).max(32).required().error(new Error("article_id格式错误")),
        comment_id: joi.string().min(1).max(32).error(new Error("comment_id格式错误")),
        comment: joi.string().min(1).max(300).replace(/</g,"﹤").replace(/>/g,"﹥").required().error(new Error("评论长度必须为1~300")),
    }
}

// 获取文章评论
exports.article_comment = {
    query:{ 
        article_id:joi.string().min(1).max(32).required().error(new Error("article_id必须是长度在1~32之间的字符串")),
        page_num : joi.number().min(1).max(1000).default(1).error(new Error("page_num必须为1~1000的数值")),
        page_size : joi.number().min(1).max(50).default(10).error(new Error("page_size必须为1~50的数值")),
        relation: joi.string().min(0).max(1000).default("").error(new Error("层级错误")),
    }
}

